, ,

Format PDF

Cette page traite de la gestion des fichiers de type PDF sous Ubuntu.

PDF, un format partiellement fermé

Le PDF, tel que défini par l'ISO en 2008 est un format ouvert. Néanmoins, les logiciels dominants permettant la création de fichiers PDF sont développées par la société Adobe et sont propriétaires. Les PDF générés par les logiciels de cet éditeur ne respectent pas ce standard ISO 1), ce qui rend de fait aujourd'hui le format partiellement fermé.

Lire un fichier PDF

Du fait du caractère semi-fermé du format PDF, Adobe Reader ©, le visionneur propriétaire (et gratuit) d'Adobe ® (avec plugin pour Firefox), est le seul logiciel sur Ubuntu à ce jour permettant de lire correctement tous les fichiers PDF générés par les logiciels de l'éditeur Adobe, notamment les commentaires, annotations et les formulaires XFA. A noter:

Logiciels sous linux gérant lisant les PDF :

Vous trouverez sur ce site non seulement un tableau fournissant des liens vers quelques visionneuses libres, mais surtout un historique du développement et de l'évolution du format PDF qui synthétise les objectifs et les enjeux d'un format que l'on ne peut que souhaiter voir demeurer libre à l'image du protocole fondateur du Web 1.0: j'ai nommé le code HTTP!.

Rechercher

Voici une astuce en ligne de commande pour rechercher un texte dans un ou plusieurs fichiers pdf. Aller dans le répertoire contenant l'ensemble des fichiers et ouvrez un terminal soit graphiquement puis clic droit "ouvrir un terminal" soit

cd /chemin/vers/le/repertoire

pour un fichier

 pdftotext -layout "nom-du-fichier.pdf" - | grep -iE "texte-a-chercher" 

pour plusieurs fichiers

avec boucle for :

for i in *.pdf; do echo "$i";  pdftotext -layout "$i" - | grep -iE "texte-a-chercher"; echo ; done

avec find :

find . -iname "*.pdf" -exec bash -c 'echo "{}" ; pdftotext -layout "{}" - | grep -iE "texte-a-chercher" ; echo "    ####### fin fichier {} " ' \;

Formulaires

Si la lecture des fichiers PDF au format semi-ouvert ne pose généralement pas de souci avec les lecteurs fournis par défaut, certains se révèlent moins doué pour gérer les formulaires au format propriétaire fermé de type XFA, utilisé dans les formulaires CERFA. Les logiciels libres et gratuits suivants permettent de s’acquitter de cette tache avec plus de facilité :

Le seul logiciel à ouvrir correctement tous les formulaires récents est la solution gratuite mais non libre Master PDF Editor. La version gratuite pose des filigranes (watermarks) sur le document, pour contourner ce problème vous devez utiliser une ancienne version comme: master-pdf-editor-4.3.89_qt5.amd64.deb à rechercher sur le net.

Les formulaires CERFA de l'Administration Publique Française sont disponibles sur leur service en ligne

Modifier les textes, images et mise en page d'un fichier PDF

Attention, l'importation entre logiciels offre des résultats assez aléatoires selon la paire de logiciels utilisée.
Les images ne sont pas toujours bien restituées, les polices ne sont pas restituées à l'identique… De plus, les fonctionnalités propriétaires d'Adobe ne sont pas gérées.
ATTENTION Les versions récentes de Libreoffice draw (e.g. 6) permettent directement l'import des pdf et l'ajout de l'extension ci-dessus casse cette fonctionnalité.
ATTENTION à choisir une résolution − en Dot-per-Inch (DPI), comprenez Points Par Pouce − qui corresponde au résultat espéré.
Conseils:

L'importation qui fonctionne assez bien et donne des résultats quasi identiques consiste à ouvrir votre PDF dans Evince, à « l'imprimer dans un fichier » au format "dessin vectoriel" SVG puis à ouvrir le document avec Inkscape.

ATTENTION, une seule page à la fois : Evince regroupe toutes les pages sur une seule page.
Quant à LibreOffice Draw il gère bien le texte et la mise en page est sensiblement respectée mais il "oublie" les images.
Inkscape fait un assez bon travail mais modifie légèrement la police du texte. Gimp ne permet pas de modifier le texte (format image).

Pour obtenir un fichier sauvegardé au format PDF à partir des logiciels ci-dessus, ou de n'importe quel autre, il suffit d'imprimer dans un fichier et de choisir PDF comme format de sortie.

La mise en page finale des éléments graphiques d'un PDF modifié dans GIMP au format JPG se fera - par exemple - à l'aide de la fonction "imprimer dans un fichier PDF" du logiciel Gthumb.

Découpe, fusion, réorganisation, rotation et autres manipulations...

Export ou conversion vers un fichier PDF

Assembler plusieurs JPG en un PDF

Installez ImageMagick grâce à votre gestionnaire de paquet ou en une ligne de commande :

sudo apt-get install imagemagick

Toujours avec le terminal, rendez-vous dans le dossier contenant les jpg a convertir avec la commande cd. Par exemple :

cd /home/mon_nom_d'utilisateur/mon_dossier

Puis, rentrez la commande suivante :

convert *.jpg foo.pdf

La conversion prend plus ou moins de temps en fonction de la qualité et du nombre de fichiers . jpg à convertir.

Un document s'appelant foo.pdf vous attendra dans votre dossier contenant les jpg.

Attention ! Dans les dernières versions d'ImageMagick, un développeur fou a bloqué cette fonction ! Voir la doc Imagemagick pour débloquer la situation.

Export ou conversion depuis un fichier PDF

Réduire la taille d'un fichier PDF

Méthode en ligne de commande

gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile="fichier_reduit.pdf"  "fichier_a_reduire.pdf"

Pour plus d'information, consulter cette discussion.

Pour réduire la taille d'une image en passant en noir&blanc :

gs -dBATCH -DNOPAUSE -q -sDEVICE=pdfwrite -dColorConversionStrategy=/Gray -r100 -sOutputFile="fichier_reduit.pdf"  "fichier_a_reduire.pdf"

Cette ligne de commande est encore plus efficace, et modulable :

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf input.pdf

Pour plus d'information, consulter cette discussion.

Méthode via l'application moins moins

Il est possible aussi d'utiliser pdfmm («pdf moins moins»), un assistant graphique qui permet d'effectuer la même tâche :

Installation / utilisation FIXME

Imprimer un livre en cahiers pour le relier à l'ancienne

Un livre classique (non broché) est constitué de cahiers / livrets qui sont reliés entre eux par du fil de couture.

Pour imprimer de tels cahiers, consulter cette discussion sur debian-fr.org, ou bien celle-ci sur ubuntu-fr.org. Les scripts proposés sur ce dernier post permettent de faire de l'imposition très facilement. Pour des pages à A6 à mettre sur du A4 préférez le script de Serged et n'oubliez pas d'installer texlive-extra-utils.

Pour créer des livrets à partir d'A4 converti en A5 avec une petite interface graphique, bookletimposer, est une application idéale.

NB : Les livres brochés sont constitués uniquement de feuilles collées sur leur tranche. Le livre qui en résulte est moins solide car les pages peuvent se détacher avec le temps, lorsque la colle durcit et se casse. C'est le cas des livres de poche.

Déocériser un PDF (pour empêcher le copier/coller)

Voir cette discussion sur le forum ubuntu-fr.

Ghostscript permet de générer des fichiers PDF 1.3 protégés :

gs -dBATCH -DNOPAUSE -q -sDEVICE=pdfwrite -dEncryptionR=3 -dKeyLength=40 -dPermissions=65472 -sOwnerPassword=null -sOutputFile=sortie.pdf -f Entree.pdf

L'option -dPermissions permet de sélectionner les actions autorisées : ici ni copier, ni coller, ni imprimer n'est autorisé. Ceci permet de garder un fichier de taille faible et de qualité identique.

Il serait très intéressant d'avoir ici une explication détaillée quant aux différentes valeurs possibles pour l'option -dPermissions.
Tips & Tricks de Guillaume MULLER pour le chiffrement d'un PDF avec ps2pdf.

Cracker un pdf protégé par un mot de passe

Installez le paquet pdfcrack.

ou bien utiliser qpdf :

 qpdf --decrypt fichierProtégé.pdf fichierModifiable.pdf 

Voir aussi


Contributeurs:eagle08.

1)
Adobe ne documente plus le format depuis 2008, tout en continuant à inclure des technologies propriétaires comme par exemple les formulaires PDF, formulaires CERFA, ou XFA, développés depuis la version 9 d'Adobe Reader ©
2)
Paquet de transition depuis Ubuntu 18.04